Electronic mail (e-mail) is one of the most commonly used applications for distributed computer networks. The benefits of e-mail applications are obvious. Users can quickly communicate with one another. If a person isn't available to pick up a message immediately, the message is stored until that person can review the stored message at a later time. E-mail messages also provide a quick and easy way to package information such as sales reports, graphics, and other data for transfer to another user by simply attaching the information to the message. These days, business users increasingly rely on e-mail messages to share ideas, transmit documents, schedule meetings, and perform a multitude of other everyday tasks.
These tasks may be accomplished by a variety of software programs. For example, e-mail programs facilitate the transmission of messages between users. Messaging-enabled scheduling programs allow users to request and schedule meetings and appointments via electronic messages. Computer programs known as desktop information managers attempt to coordinate the growing stream of electronic communications by incorporating e-mail, a calendar, task management, contact management, notes, and journal features into a single application program.
The increased reliance on electronic messaging has resulted in a great increase in the number of electronic messages a user sends and receives daily. Users who send and receive a large number of e-mail messages would like an effective way to process their e-mail without spending a lot of time sorting through their in-box, deleting, filing, forwarding, and responding to their messages. Hence, a major problem with e-mail is that a user can become inundated with messages without an efficient and effective means to manage them.
Specifically, mail boxes require management to dispose of messages or to archive those that might be required later. Prior electronic message systems have managed message operations by obtaining required message-related information from the message server or by scanning messages maintained in the local message store at the client. These systems typically contain inefficient code in the messaging protocol implementation, which results in unnecessary retrieval of information from the server. In addition, these systems do not have an efficient means for downloading information and deleting unnecessary information.
For example, the Internet Message Access Protocol (IMAP) and version 3.0 of the Post Office Protocol (POP3) are messaging protocols that supports e-mail messages. IMAP defines a method of accessing electronic mail or bulletin board messages that are kept in a message store on a remote mail server. IMAP permits an e-mail client program to access remote message stores as if they were local. Messages stored on an IMAP server can be easily manipulated by a user who uses multiple computers (e.g., a workstation at the office and a notebook on the road) without requiring the user to transfer messages or files back and forth between his or her computers. POP3 does not have as much flexibility as IMAP. Specifically, POP3 typically requires the deletion of messages from the server after downloading these messages to a client. So, the user is unable to maintain messages on the server if the user so desires. In addition, electronic message programs implementing the POP3 and IMAP protocols typically contain inefficient code requiring commands, such as LIST and POP3 STAT, to be sent for messages already downloaded in a local message store at a client.
In prior systems, multiple part messages are assembled in response to scanning the local message store on the client to obtain information required to combine message parts. To assemble a message comprising multiple message parts, prior message systems have examined contents of a local store to locate message parts. These prior message systems assemble the complete message based on the identified message parts. Typically, these message parts are identified by searching the TO:/FROM: fields of messages and a Message Part Number (message 2 of 5) to locate the available sections of a particular message. Searching the local message store, however, is at best an inefficient processing operation because selected fields of all messages in the message store must be reviewed to locate all available message parts at the client. Although the search of the local message store is focused upon a limited set of required information, all messages in the local message store must be "touched" by this searching operation.
Therefore, there is a need for a system that optimizes communication with electronic message servers. There is also a need for a single mechanism for managing messages in a local message store located at a client. In addition, there is a need for a system that efficiently obtains electronic message-related information from a server. There is a further need for a system that reassembles messages without the need for reviewing each message in a local message store.